package com.example.demo;

import com.example.demo.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller // 表示该类是一个控制器
@RequestMapping(path="/demo") // 这意味着URL以/demo开头（在应用程序路径之后）
public class MainController {
    @Autowired // 这意味着获取名为userRepository的bean
    // 它是由Spring自动生成的，我们将使用它来处理数据

    private UserRepository userRepository;

    @PostMapping(path="/add") // 仅映射POST请求

    public @ResponseBody String addNewUser (@RequestParam String name
            , @RequestParam String email) {
        // @ResponseBody 表示返回的字符串是响应，而不是视图名称
        // @RequestParam 表示它是GET或POST请求中的参数

        User n = new User();
        n.setName(name);
        n.setEmail(email);
        userRepository.save(n);
        return "Saved";
    }

    @GetMapping(path="/all")
    public @ResponseBody Iterable<User> getAllUsers() {
        // 这将返回用户的JSON或XML
        return userRepository.findAll();
    }
}